/* 设置全局样式 */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* 全局变量 */
:root {
  --primary-color: #3c9474;
  --primary-light: #e6f3ed;
  --primary-dark: #2c5e43;
  --secondary-color: #518b71;
  --danger-color: #d95555;
  --success-color: #58c58e;
  --warning-color: #e6a23c;
  --info-color: #909399;
  --background-color: #f0f7f4;
  --text-color: #333333;
  --text-color-light: #606266;
  --border-color: #dcdfe6;
  --font-family: 'PingFang SC', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

body {
  font-family: var(--font-family);
  color: var(--text-color);
  background-color: var(--background-color);
}

/* Element Plus 主题覆盖 */
.el-button--primary {
  --el-button-bg-color: var(--primary-color);
  --el-button-border-color: var(--primary-color);
  --el-button-hover-bg-color: var(--secondary-color);
  --el-button-hover-border-color: var(--secondary-color);
  --el-button-active-bg-color: var(--primary-dark);
  --el-button-active-border-color: var(--primary-dark);
}

.el-menu {
  --el-menu-hover-bg-color: var(--primary-light);
  --el-menu-active-color: var(--primary-color);
}

.el-menu-item.is-active {
  color: var(--primary-color) !important;
}

.el-menu--horizontal .el-menu-item:not(.is-disabled):hover,
.el-menu--horizontal .el-sub-menu:not(.is-disabled):hover {
  color: var(--primary-color) !important;
}

.el-card {
  border-radius: 8px;
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.05);
  transition: all 0.3s;
  
  &:hover {
    box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.1);
  }
  
  .el-card__header {
    padding: 15px 20px;
    border-bottom: 1px solid var(--primary-light);
    font-weight: bold;
    color: var(--primary-dark);
  }
}

.el-table {
  --el-table-header-bg-color: var(--primary-light);
  --el-table-row-hover-bg-color: #f5f9f7;
  
  .el-table__header-wrapper th {
    background-color: var(--primary-light);
    color: var(--primary-dark);
    font-weight: bold;
  }
}

.el-pagination {
  --el-pagination-button-bg-color: var(--primary-light);
  --el-pagination-hover-color: var(--primary-color);
}

.el-input {
  --el-input-focus-border-color: var(--primary-color);
}

.el-select {
  --el-select-input-focus-border-color: var(--primary-color);
}

.el-checkbox {
  --el-checkbox-checked-bg-color: var(--primary-color);
  --el-checkbox-checked-input-border-color: var(--primary-color);
  --el-checkbox-checked-icon-color: #fff;
}

.el-radio {
  --el-radio-checked-icon-color: var(--primary-color);
  --el-radio-checked-input-border-color: var(--primary-color);
  --el-radio-checked-bg-color: var(--primary-color);
}

.el-tag--success {
  --el-tag-bg-color: var(--primary-light);
  --el-tag-border-color: var(--primary-color);
  --el-tag-text-color: var(--primary-dark);
}

/* 自定义滚动条 */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb {
  background: #c1d4cb;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--primary-color);
}

/* 通用样式类 */
.page-container {
  padding: 20px;
}

.text-primary {
  color: var(--primary-color);
}

.text-secondary {
  color: var(--secondary-color);
}

.text-danger {
  color: var(--danger-color);
}

.text-success {
  color: var(--success-color);
}

.text-warning {
  color: var(--warning-color);
}

.text-info {
  color: var(--info-color);
}

.bg-primary {
  background-color: var(--primary-color);
}

.bg-primary-light {
  background-color: var(--primary-light);
}

.bg-primary-dark {
  background-color: var(--primary-dark);
}

/* 动画效果 */
.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.3s;
}

.fade-enter-from,
.fade-leave-to {
  opacity: 0;
}

/* 响应式布局辅助 */
@media screen and (max-width: 768px) {
  .hide-on-mobile {
    display: none;
  }
}

@media screen and (max-width: 992px) {
  .hide-on-tablet {
    display: none;
  }
}